/*
 * Soru.java
 */
package eDoktor.hastalikGrubu;

import eDoktor.hastalik.Belirti;
import java.util.ArrayList;
import java.util.List;

/**
 * Soru sınıfı
 * @author Onuralp
 */
public class Soru {
    private int no;
    private String tanim;
    private List<Cevap> secenekler;
    private String secenekTipi;
    private Cevap cevap;
    private Belirti belirti;
    private boolean belirtiyeIsaret;

    /**
     * Soru sınıfının yapılandırıcısı
     */
    public Soru() {
        no = 0;
        tanim = "";
        secenekler = new ArrayList<Cevap>();
        secenekTipi = "Evet/Hayır";
        cevap = new Cevap();
        belirti = new Belirti();
        belirtiyeIsaret = false;
    }

    /**
     * Soru sınıfının degiskenlerine erişmeyi sağlayan fonksiyonlar 
     */
    
    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getTanim() {
        return tanim;
    }

    public void setTanim(String tanim) {
        this.tanim = tanim;
    }

    public List<Cevap> getSecenekler() {
        return secenekler;
    }

    public void setSecenekler(List<Cevap> secenekler) {
        this.secenekler = secenekler;
    }

    public String getSecenekTipi() {
        return secenekTipi;
    }

    public void setSecenekTipi(String secenekTipi) {
        this.secenekTipi = secenekTipi;
    }

    public Cevap getCevap() {
        return cevap;
    }

    public void setCevap(Cevap cevap) {
        this.cevap = cevap;
    }

    public Belirti getBelirti() {
        return belirti;
    }

    public void setBelirti(Belirti belirti) {
        this.belirti = belirti;
    }
    
    public boolean isBelirtiyeIsaret() {
        return belirtiyeIsaret;
    }

    public void setBelirtiyeIsaret(boolean belirtiyeIsaret) {
        this.belirtiyeIsaret = belirtiyeIsaret;
    }
    
    
    /**
     * Soruya verilen cevabın belirtiye işaret edip etmediğini değerlendir.
     */
    public void degerlendir() {
        if (cevap.getOlasilik() >= 0.5) {
            belirtiyeIsaret = true;
        }
        else {
            belirtiyeIsaret = false;
        }
    }
    
    /**
     * Soruya ait seçenekleri oluştur.
     */
    public void secenekleriOlustur() {
        if (secenekTipi.equals("Evet/Hayır")) {
            Cevap secenek1 = new Cevap("Evet", 1.00);
            secenekler.add(secenek1);
            Cevap secenek2 = new Cevap("Hayır", 0.00);
            secenekler.add(secenek2);
        }
        else {
            Cevap secenek1 = new Cevap("Yüksek", 0.90);
            secenekler.add(secenek1);
            Cevap secenek2 = new Cevap("Orta", 0.60);
            secenekler.add(secenek2);
            Cevap secenek3 = new Cevap("Düşük", 0.30);
            secenekler.add(secenek3);
        }
    }
}
